﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace Mapping.Seguridad
{
    public static class MappingPerfiles
    {
        public static List<Entidades.Seguridad.Perfil> ConsultarPerfiles()
        {
            SqlCommand cmdPerfiles = new SqlCommand();
            cmdPerfiles.CommandText = "sp_ConsultarPerfiles";
            cmdPerfiles.CommandType = System.Data.CommandType.StoredProcedure;
            Servicios.Conexion.ObtenerInstancia().Conectar("Seguridad");
            cmdPerfiles.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            SqlDataReader drPerfiles = cmdPerfiles.ExecuteReader();

            List<Entidades.Seguridad.Perfil> ColPerfiles = new List<Entidades.Seguridad.Perfil>();

            while (drPerfiles.Read())
            {
                Entidades.Seguridad.Perfil oPerfil = new Entidades.Seguridad.Perfil();
                Entidades.Seguridad.Grupo oGrupo = new Entidades.Seguridad.Grupo();
                Entidades.Seguridad.Formulario oFormulario = new Entidades.Seguridad.Formulario();
                Entidades.Seguridad.Permiso oPermiso = new Entidades.Seguridad.Permiso();

                oGrupo.IdGrupo = (drPerfiles["Id_Grupo"]).ToString();
                oGrupo.Descripcion = drPerfiles["Descripcion"].ToString();
                oFormulario.IdFormulario = drPerfiles["Id_Formularios"].ToString();
                oFormulario.Nombre = drPerfiles["NombreFormulario"].ToString();
                oFormulario.Descripcion = drPerfiles["DescForm"].ToString();
                oPermiso.IdPermiso = drPerfiles["Id_Permisos"].ToString();
                oPermiso.Nombre = drPerfiles["DescPermiso"].ToString();

                oPerfil.Formulario = oFormulario;
                oPerfil.Grupo = oGrupo;
                oPerfil.Permiso = oPermiso;

                ColPerfiles.Add(oPerfil);
            }

            Servicios.Conexion.ObtenerInstancia().Desconectar("Seguridad");
            return ColPerfiles;

        }


        public static bool AgregarPerfil(Entidades.Seguridad.Perfil oPerfil)
        {
            SqlCommand cmdPerfiles = new SqlCommand();
            cmdPerfiles.CommandText = "sp_AgregarPerfil";
            cmdPerfiles.CommandType = System.Data.CommandType.StoredProcedure;
            Servicios.Conexion.ObtenerInstancia().Conectar("Seguridad");
            cmdPerfiles.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();

            cmdPerfiles.Parameters.Add("@IdGrupo", System.Data.SqlDbType.VarChar).Value = oPerfil.Grupo.IdGrupo;
            cmdPerfiles.Parameters.Add("@IdFormulario", System.Data.SqlDbType.VarChar).Value = oPerfil.Formulario.IdFormulario;
            cmdPerfiles.Parameters.Add("@IdPermiso", System.Data.SqlDbType.VarChar).Value = oPerfil.Permiso.IdPermiso;
            cmdPerfiles.ExecuteNonQuery();

            Servicios.Conexion.ObtenerInstancia().Desconectar("Seguridad");
            return true;
 
        }

        public static bool EliminarPerfil(Entidades.Seguridad.Perfil oPerfil)
        {
            SqlCommand cmdPerfiles = new SqlCommand();
            cmdPerfiles.CommandText = "sp_EliminarPerfil";
            cmdPerfiles.CommandType = System.Data.CommandType.StoredProcedure;
            Servicios.Conexion.ObtenerInstancia().Conectar("Seguridad");
            cmdPerfiles.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdPerfiles.Parameters.Add("@IdGrupo", System.Data.SqlDbType.VarChar).Value = oPerfil.Grupo.IdGrupo;
            cmdPerfiles.Parameters.Add("@IdFormulario", System.Data.SqlDbType.VarChar).Value = oPerfil.Formulario.IdFormulario;
            cmdPerfiles.Parameters.Add("@IdPermiso", System.Data.SqlDbType.VarChar).Value = oPerfil.Permiso.IdPermiso;
            cmdPerfiles.ExecuteNonQuery();
            Servicios.Conexion.ObtenerInstancia().Desconectar("Seguridad");
            return true;
        }
    }
}
